<?php

namespace App\Admin\Exports;

use App\Model\CoinLog;
use Encore\Admin\Grid\Exporters\ExcelExporter;
use Maatwebsite\Excel\Concerns\ShouldAutoSize;
use Maatwebsite\Excel\Concerns\WithHeadings;
use Maatwebsite\Excel\Concerns\WithMapping;

class CoinLogExport extends ExcelExporter implements WithMapping, WithHeadings, ShouldAutoSize
{
    //这里是导出来的文件的名字和格式
    protected $fileName = '交易列表.xlsx';
    //这里是excel的标题
    public function headings(): array
    {
        return [
            '用户ID',
            '昵称',
            '金币',
            '交易类型',
            '交易时间'
        ];
    }

    public function map($data): array
    {   //这里是字段的值 如果是主表的数据 直接对象的形式就可以写出来
        //如果是关联的表的数据 可以通过data_get()去渲染
        //其他部分是枚举类字段值的语义化
        return [
            $data->userProfile->user_profile_id,
            $data->userProfile->nick_name,
            $data->coin,
            CoinLog::FROM_DETAIL[$data->from] ?? '未知',
            $data->created_at,
        ];
    }
}
